package com.sowka.miko.weather;

import com.sowka.miko.weather.model.Forecast;
import com.sowka.miko.weather.provider.WeatherProvider;

public interface WeatherService {
	
	String DEFAULT_PROVIDER_PROP = "defaultProvider";

	public void registerProvider(String providerId, WeatherProvider provider);
	
	public void unregisterProvider(String providerId);

    /**
     * Return the list of registered weather providers
     * 
     * @return the list of weather provider ids
     */
    public String[] listProviders();

    /**
     * Fetch the weather <code>Forecast</code> for the default provider
     * 
     * @return the current weather forecast for default provider
     */
    public Forecast fetchForecast();
    
    /**
     * Fetch the weather <code>Forecast</code> from the given provider
     * 
     * @param providerId the id of the given provider 
     * @return the weather forecast
     */
    public Forecast fetchForecast(String word);
    


}
